package fr.afcepf.atod16.groupe1.projet1.dto.commande;

import fr.afcepf.atod16.groupe1.projet1.dto.Dto;
import fr.afcepf.atod16.groupe1.projet1.dto.catalogue.DtoProduit;

/**
 * Le DTO ligne de commande
 * @author cedric
 */
public class DtoLigneCommande implements Dto {

    private Integer id;
    private Integer quantite;
    private Integer prixUnitaire;
    private Integer remise;
    private Integer tauxTVA;
    private DtoCommande commande;
    private DtoProduit produit;

    public DtoLigneCommande() {
    }

    public DtoLigneCommande(Integer id, Integer quantite, Integer remise, Integer tauxTVA, DtoCommande commande, DtoProduit produit) {
        this.id = id;
        this.quantite = quantite;
        this.remise = remise;
        this.tauxTVA = tauxTVA;
        this.commande = commande;
        this.produit = produit;
    }

    @Override
    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    public Integer getQuantite() {
        return quantite;
    }

    public void setQuantite(Integer quantite) {
        this.quantite = quantite;
    }

    public Integer getPrixUnitaire() {
        return prixUnitaire;
    }

    public void setPrixUnitaire(Integer prixUnitaire) {
        this.prixUnitaire = prixUnitaire;
    }

    public Integer getRemise() {
        return remise;
    }

    public void setRemise(Integer remise) {
        this.remise = remise;
    }

    public Integer getTauxTVA() {
        return tauxTVA;
    }

    public void setTauxTVA(Integer tauxTVA) {
        this.tauxTVA = tauxTVA;
    }

    public DtoCommande getCommande() {
        return commande;
    }

    public void setCommande(DtoCommande commande) {
        this.commande = commande;
    }

    public DtoProduit getProduit() {
        return produit;
    }

    public void setProduit(DtoProduit produit) {
        this.produit = produit;
    }

    @Override
    public String toString() {
        return "DtoLigneCommande{" + "id=" + id + ", quantite=" + quantite + ", prixUnitaire=" + prixUnitaire + ", remise=" + remise + ", tauxTVA=" + tauxTVA + ", commande=" + commande + ", produit=" + produit + '}';
    }

    @Override
    public int hashCode() {
        int hash = 7;
        hash = 79 * hash + (this.id != null ? this.id.hashCode() : 0);
        hash = 79 * hash + (this.quantite != null ? this.quantite.hashCode() : 0);
        hash = 79 * hash + (this.prixUnitaire != null ? this.prixUnitaire.hashCode() : 0);
        hash = 79 * hash + (this.remise != null ? this.remise.hashCode() : 0);
        hash = 79 * hash + (this.tauxTVA != null ? this.tauxTVA.hashCode() : 0);
        hash = 79 * hash + (this.commande != null ? this.commande.hashCode() : 0);
        hash = 79 * hash + (this.produit != null ? this.produit.hashCode() : 0);
        return hash;
    }

    @Override
    public boolean equals(Object obj) {
        if (obj == null) {
            return false;
        }
        if (getClass() != obj.getClass()) {
            return false;
        }
        final DtoLigneCommande other = (DtoLigneCommande) obj;
        if (this.id != other.id && (this.id == null || !this.id.equals(other.id))) {
            return false;
        }
        if (this.quantite != other.quantite && (this.quantite == null || !this.quantite.equals(other.quantite))) {
            return false;
        }
        if (this.prixUnitaire != other.prixUnitaire && (this.prixUnitaire == null || !this.prixUnitaire.equals(other.prixUnitaire))) {
            return false;
        }
        if (this.remise != other.remise && (this.remise == null || !this.remise.equals(other.remise))) {
            return false;
        }
        if (this.tauxTVA != other.tauxTVA && (this.tauxTVA == null || !this.tauxTVA.equals(other.tauxTVA))) {
            return false;
        }
        if (this.commande != other.commande && (this.commande == null || !this.commande.equals(other.commande))) {
            return false;
        }
        if (this.produit != other.produit && (this.produit == null || !this.produit.equals(other.produit))) {
            return false;
        }
        return true;
    }
}
